package com.totcy.atom.presenter.contract;

import com.totcy.atom.bean.User;
import com.totcy.baselibrary.base.mvpbase.BaseModel;
import com.totcy.baselibrary.base.mvpbase.BaseView;

/**
 * Description 用户登录
 * Author: tu
 * Date: 2017-10-31
 * Time: 18:51
 */
public interface LoginContract {

    interface View extends BaseView {
        /**
         * 登录
         *
         * @param user
         */
        void onLoginResult(User user);

        /**
         * 登录失败
         */
        void onLoginFail(String message);
    }

    interface Presenter{
        /**
         * Presenter 调用 model 获取数据
         *
         * @param account    账号
         * @param password 密码
         */
        void doLogin(String account, String password);
    }

    interface Model extends BaseModel {
        interface DataCallback {
            /**
             * 登录
             *
             * @param user 用户信息
             */
            void onLoginResult(User user);

            /**
             * 登录失败
             */
            void onLoginFail(String message);
        }

        /**
         * 从网络获取数据
         *
         * @param account    账号
         * @param password 密码
         * @param callback 结果回调
         */
        void doLogin(String account, String password, DataCallback callback);

    }

}